# -*- coding: latin-1 -*-
from PyQt4.QtSql import QSqlRelationalTableModel, QSqlQuery
from PyQt4.QtCore import Qt, QVariant

from modelo.hclinica_modelo import *

DEBUG = False

class mascota_modelo():
    def __init__(self):
        # Defino constantes que hacen referencia a las columnas. Es para llamarlas por nombre en vez de por numeros
        self.ID = 0
        self.NOMBRE = 1
        self.SEXO = 2
        self.PELAJE = 3
        self.RAZA = 4
        self.ESPECIE = 5
        self.FECHANACIMIENTO = 6
        self.FECHAALTA = 7
        self.ID_DUENIO = 8
  
        # Se define el modelo
        self.model = QSqlRelationalTableModel()
        self.model.setTable("animal")       
        self.model.setSort(self.NOMBRE, Qt.AscendingOrder)
        self.model.setHeaderData(self.ID, Qt.Horizontal, QVariant("Nro. de Mascota"))
        self.model.setHeaderData(self.NOMBRE, Qt.Horizontal, QVariant("Nombre"))
        self.model.setHeaderData(self.SEXO, Qt.Horizontal, QVariant("Sexo"))
        self.model.setHeaderData(self.PELAJE, Qt.Horizontal, QVariant("Pelaje"))
        self.model.setHeaderData(self.RAZA, Qt.Horizontal, QVariant("Raza"))
        self.model.setHeaderData(self.ESPECIE, Qt.Horizontal, QVariant("Especie"))
        self.model.setHeaderData(self.FECHANACIMIENTO, Qt.Horizontal, QVariant("Fecha de nacimiento"))
        self.model.setHeaderData(self.FECHAALTA, Qt.Horizontal, QVariant("Fecha de alta"))
        self.model.setHeaderData(self.ID_DUENIO, Qt.Horizontal, QVariant("Cliente"))
        self.model.select()
    
    def listarMascotas(self, id_duenio):
            if DEBUG: print "listando mascotas para duenio :"+str(id_duenio)
            filter="id_duenio="+str(id_duenio)
            self.model.setFilter(filter)
            self.model.select()
    
    def obtenerIdDuenio(self, idMascota):
        self.query = QSqlQuery()
        self.query.exec_("select id_duenio from animal where id_animal = "+str(idMascota)+";")
        self.query.next()
        idDuenio = self.query.value(0).toInt()[0]
        if DEBUG: print "id duenio:", idDuenio
        return idDuenio

    def eliminarMascota(self, idAnimal):
        historiaClinica=hclinica_modelo()
        historiaClinicaMascota=historiaClinica.obtenerRegistros(idAnimal)
        for registro in  historiaClinicaMascota:
            historiaClinica.eliminarRegistro(registro)
        self.query = QSqlQuery()
        self.query.exec_("delete from animal where id_animal = "+str(idAnimal)+";")
        self.model.select()
